/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package tableCellRender;

import java.awt.Component;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import javax.swing.JTable;
import static javax.swing.SwingConstants.CENTER;
import javax.swing.table.TableCellRenderer;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
import otros.Util;

/**
 *
 * @author FERRETERIA
 */
public class Costo extends JFormattedTextField implements TableCellRenderer {
    
        private int filaSel;
    private boolean fuera;

    public Costo (int fila, boolean fuera) {
        super();
        filaSel = fila;
        this.fuera = fuera;
    }
    
    @Override
    public Component getTableCellRendererComponent(final JTable jtable, Object value, boolean selected, boolean focused, int row, int column) {

        final JFormattedTextField campoTexto = new JFormattedTextField();
        NumberFormat dispFormat = new DecimalFormat ("#0.0000€");
        // Formato de edición: inglés (separador decimal: el punto)
        NumberFormat editFormat = new DecimalFormat ("#0.0000");
        // Para la edición, no queremos separadores de millares
        editFormat.setGroupingUsed(false);
        // Creamos los formateadores de números
        NumberFormatter dnFormat = new NumberFormatter(dispFormat);
        NumberFormatter enFormat = new NumberFormatter(editFormat);
        // Creamos la factoría de formateadores especificando los
        // formateadores por defecto, de visualización y de edición
        DefaultFormatterFactory currFactory = new DefaultFormatterFactory(dnFormat, dnFormat, enFormat);


       campoTexto.setFormatterFactory(currFactory);

       //String campo = (value != null) ? (String) value : "0";
       //campoTexto.setValue(Float.parseFloat(campo));
       campoTexto.setValue(value);
       campoTexto.setBorder(null);
       campoTexto.setHorizontalAlignment(CENTER);
       campoTexto.setBackground(Util.getBackground(row,filaSel,jtable, selected, fuera));
       campoTexto.setForeground(Util.getForeground(row,filaSel,jtable,selected, fuera));          

       return campoTexto; 
    }
}
